package com.shujia.scala

import scala.collection.mutable

object Demo19Map {
  def main(args: Array[String]): Unit = {
    /**
     * map：kv格式的集合
     *
     */

    val map: Map[String, Int] = Map(("001", 23), ("002", 24), "003" -> 25)
    println(map)

    //可以通过key获取value
    val value = map("001")
    println(value)

    //如果key不存在返回默认值
    val age = map.getOrElse("006", 0)
    println(age)

    /**
     * 给每个人的年龄加一
     *
     * map集合的map方法，函数的参数是一个二元组,
     * 返回一个新的map
     */
    val addAge: Map[String, Int] = map.map((kv: (String, Int)) => {
      val id = kv._1
      val age = kv._2
      (id, age + 1)
    })
    println(addAge)

    //获取所有的key和value
    println(map.keys)
    println(map.values)

    /**
     * 可变map集合
     *
     */

    val hashMap = new mutable.HashMap[String, String]()

    //插入元素
    hashMap += "001" -> "张三"
    hashMap += "002" -> "李四"
    hashMap += "003" -> "王五"

    println(hashMap)
    //如果key存在自动覆盖
    hashMap += "003" -> "赵六"
    println(hashMap)

    //删除元素
    hashMap.remove("003")
    hashMap -= "002"
    println(hashMap)
  }

}
